今天使用UINavigationController,设置translucent半透明属性后进去push/pop跳转,发现页面在出现和消失的瞬间,导航栏的右边会出现短暂的黑色阴影。其实以前也发现过这个问题,但是没要求必须透明我就不设置透明了,也就没去找怎么解决。

2016-05-04 10_51_40.gif

仔细调试了半天,发现这个问题不是设置translucent。而是你设置了tabbar的hide bottom bar on push的属性后跳转才会出现。

解决办法有两种

1.直接在appdelegate里面的didFinishLaunchingWithOptions方法里面设置window的背景颜色

1
2
3
4
5
6
7
8
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    self.window.backgroundColor = [UIColor whiteColor];
    
    
    return YES;
}

2.或者创建一个继承与UITabBarController的子类里面设置背景颜色

1
2
3
4
5
6
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
}

感谢图拉鼎的文章http://imtx.me/archives/1933.html